www.gusucode.com > C++ OpenCV图像处理入门和MFC的实例源码程序 > C++ OpenCV图像处理入门和MFC的实例源码程序/code/CVMFC/CVMFCDoc.cpp
//Download by http://www.NewXing.com // CVMFCDoc.cpp : implementation of the CCVMFCDoc class // #include "stdafx.h" #include "CVMFCDoc.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CCVMFCDoc IMPLEMENT_DYNCREATE(CCVMFCDoc, CDocument) BEGIN_MESSAGE_MAP(CCVMFCDoc, CDocument) //{{AFX_MSG_MAP(CCVMFCDoc) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCVMFCDoc construction/destruction CCVMFCDoc::CCVMFCDoc() { // TODO: add one-time construction code here pImg=NULL; m_Display=-1; } CCVMFCDoc::~CCVMFCDoc() { if (pImg) cvReleaseImage(&pImg); } ///////////////////////////////////////////////////////////////////////////// // CCVMFCDoc serialization void CCVMFCDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } } ///////////////////////////////////////////////////////////////////////////// // CCVMFCDoc diagnostics #ifdef _DEBUG void CCVMFCDoc::AssertValid() const { CDocument::AssertValid(); } void CCVMFCDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CCVMFCDoc commands BOOL CCVMFCDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; // TODO: Add your specialized creation code here BOOL bool; Load(&pImg,lpszPathName); if (pImg!=NULL) bool=true; else bool=false; return(bool); } //--------------------------------------------------------- //--------------------------------------------------------- // ImageIO BOOL CCVMFCDoc::Load(IplImage** pp,LPCTSTR csFileName) { IplImage* pImg=NULL; pImg = cvLoadImage(csFileName,-1); // 读图像文件(DSCV) if (!pImg) return(false); cvFlip(pImg); // 与 DIB 像素结构一致 if (*pp) { cvReleaseImage(pp); } (*pp)=pImg; m_Display=0; return(true); } BOOL CCVMFCDoc::Save(LPCTSTR csFileName,IplImage* pImg) { int bl; cvFlip(pImg); // 恢复原 OpenCV 位图结构 bl=cvSaveImage(csFileName,pImg); // 图像存盘 return(bl); }